package com.cy.store.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.time.Year;
import java.util.ArrayList;

/**
 * @author Administrator
 */
public class LoginInterceptor implements HandlerInterceptor {
    /**
     * Description : 检测全局session对象中是否由uid数据，有则放行，没有则拦截
     * @param request 请求对象
     * @param response 响应对象
     * @param handler 处理器（url+Controller：映射）
     **/
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        /*//获取项目工程的session
        HttpSession session = request.getSession();
        String requestURL = request.getRequestURL().toString();
        *//*
          1. 获取请求路径
        * 2. 判断session中是否有uid数据，有数据说明用户已经登陆，直接放行；
        * 3.判断当前请求是否为注册或登录请求，如果session中没有用户数据，进一步判断请求路径是否为注册或登录，
        *                               如果是，则说明用户要进行此操作，也放行，其余全部重定向
        * *//*
        ArrayList<String> requestList = new ArrayList<>();
        requestList.add("http://localhost:8080/users/reg");
        requestList.add("http://localhost:8080/users/login");
        requestList.add("https//localhost:8080/users/getByUsername");
        requestList.add("http://localhost:8080/web/login.html");
        // 如果 session 中的uid不为空，或访问路径属于白名单，放行请求
        if (session.getAttribute("uid") != null || requestList.contains(requestURL)) {
            return true;
        }else{
            //重定向至登录页面
            response.sendRedirect("/web/login.html");
            return false;
        }*/
        return true;
    }
}
